1. Field of the Invention
The present invention relates to an automated storage library having a redundant SCSI bus system. More particularly, the present invention is an automated storage library having a redundant SCSI bus system permitting switching among paths between library controllers, pickers, and peripheral storage devices should one path become disabled.
2. Description of the Related Art
The main components of a computer system include host processors, input/output (I/O) devices, and storage. Processors are the brain of computer systems, performing arithmetic and logical operations. I/O devices permit data to be input to or output from the system. A keyboard is an example of an input device and a printer is an example of an output device. Storage includes means for temporarily and permanently storing information, including user data and the instructions which direct computer operations. Storage may be within a processor, such as integrated circuit main memory, or may be peripheral thereto, such as magnetic disks, magnetic tapes, and optical disks. A machine used to write to and read from such peripheral storage is known as a peripheral storage device and typically includes a device controller for translating processor commands into the physical actions of the device itself. Each of the computer system components may be divided into subcomponents and may be distributed across various locations within the computer system.
The set of wires, paths, or connections for carrying signals throughout a computer system is known as a "bus". These internal pathways for information signals may also be subdivided. For example, a computer system may include a data bus, control bus and address bus. A particular set of communication signal protocols is typically used on a bus, depending upon such factors as the computer system components, the configuration of such components, and the bus pathing scheme. Many bus schemes are therefore customized to meet the needs of a particular computer system. The addition of a new type of peripheral storage device to the system thus also requires the addition of hardware and/or software to teach the processor how to communicate with such new device.
The development of inexpensive device controllers has recently changed the economics of small computer system storage devices. Where controller logic was once shared among many devices, it is now more economical to build a device controller in each storage device. As the number of types of storage devices for small computer systems has grown dramatically in recent years, so has the need for a common interface and bus scheme to simplify the attachment of new system components. As a result, the small computer system interface (SCSI) has become an industry standard. SCSI is a specification for a bidirectional, peripheral storage device bus and command set. The specification defines a high performance interface that distributes data among peripherals independently of a host processor. Generally, a SCSI bus provides a computer system with storage device independence within a class of devices, such as disk drives or tape drives. Different devices within a particular class can thus be added to a computer system without major modification of the system hardware or software. Adapter cards and SCSI protocol chips are used to connect processors to a SCSI bus scheme. Such chips and cards are available from numerous vendors to support SCSI bus schemes for common computer systems (e.g. IBM personal computers and machines compatible therewith). The chips and cards may be custom designed, but are much smaller and easier to design than a complete computer system, and may themselves be standardized as field replaceable units for particular systems.
It is known to make computer systems somewhat fault tolerant and more efficient through the use of redundancy in certain components, including multiple bus schemes. Multiple bus schemes are sometimes referred to as multiple buses, or as a single bus having multiple paths. Multiple paths between two system components allows for communication therebetween despite the failure or busy status of one of such paths. Some redundant bus schemes are designed to improve system operating speeds by dynamically switching between multiple paths during normal (i.e no failed components) system operations. Because of their dynamic nature, these bus schemes tend to be quite complex and are thus not practical in many applications. Other bus schemes are designed merely to maintain the availability of data despite certain component failures. Such redundant bus schemes typically rely on a primary bus to carry communications between any two particular components, and a secondary bus which can be switched into use should the primary bus fail. However, as previously mentioned, most bus schemes - redundant or not are custom designed for the particular computer system in which they are used and are thus not suitable for use in other computer systems. For example, redundant storage libraries (such as the combination of the IBM 3990 Storage Control Unit and the IBM 3380 Direct Access Storage Device) use either two oppositely flowing unidirectional buses, or a single bidirectional bus which is customized to accommodate such bidirectionality.
A redundant SCSI bus system is disclosed in U.S. Pat. No. 4,821,170. The patent discloses an I/O system for a plurality of host processors and a plurality of I/O devices in which ownership of the processor I/O channels is shared. The bus scheme includes two strings of SCSI peripheral devices which are connected at each end to either of two switches each embedded in and controlled by a different SCSI protocol chip, thereby forming a loop (i.e. the strings are double-ended). Each SCSI protocol chip is itself mounted on the adapter card of a different one of two device controllers. Because each switch is embedded in an adapter card, the adapter card itself is customized. The modification of the SCSI bus scheme to create redundancy thus results in some subcomponents no longer being SCSI standard, contrary to the original purpose of the SCSI bus scheme. Also, the adapter cards/switches are customized to accommodate the passage of information in addition to that otherwise passed to and from a switch in a SCSI bus scheme. For example, the switch control logic lines are connected directly to the adapter cards, thereby allowing the adapter cards to signal the switches active only for the precise transaction desired. The adapter card senses the completion of a transaction across a switch and can then deactivate such switch to prevent latching of the switch. Such a smart adapter card/switch allows for the bus scheme to perform certain tasks such as concurrent access to two devices (one per string), but at the expense of requiring customized parts.
Among the constraints of a SCSI bus is the attachment of no more than eight SCSI devices, including both processors and peripheral storage devices. Because of such constraint, a SCSI bus is not generally considered practical for use in large computer systems. Automated storage libraries, typically used only in large systems, are thus not designed with SCSI bus schemes. An automated storage library is a subsystem including one or more peripheral storage devices (i.e. a storage library), a set of storage cells for maintaining a library of peripheral data storage media, and a robotic picker capable of transferring such media therebetween upon command (i.e. to automate the storage library). Generally, the picker is capable of inserting a data storage medium into or removing a data storage medium from a storage cell or a peripheral storage device within the subsystem.
An automated storage library thus provides for a massive amount of data to be maintained accessible to a processor without manual assistance and is used most frequently in large computer systems because only those systems require such amounts of storage.
One automated storage library that does use a SCSI bus system is the IBM 9246 Optical Disk Library. Unfortunately, this library uses the SCSI bus inefficiently. The library includes two separate controllers, each attached only to a separate string of optical disk drives by different SCSI buses. No bus redundancy is achieved to the optical disk drives. A single picker is used to service both device strings. The single picker is not treated as a SCSI device and thus is not coupled to a SCSI bus. Instead, the picker is connected to the library controller using a different bus and protocol, resulting in increased system complexity. Finally, no provisions are made for coupling additional library controllers or pickers to the bus scheme.